[GitHub] ルールセットをエクスポートおよびインポートできるようになっていました(Beta版)
こんにちは、製造ビジネステクノロジー部の若槻です。
昨年の 10 月ですが、GitHub のルールセット(ブランチ保護ルール)をエクスポートおよびインポートする機能がパブリックベータとして追加されていました。
これにより、複数のリポジトリへの同じブランチ保護設定の適用や、ルールセットのバックアップが簡単にできるようになりました。
ルールセットのエクスポート
作成済みのルールセットのメニューで[Export ruleset]をクリックします。
するとルールセットの名前で設定が JSON 形式でダウンロードされます。
json ファイルの中身は以下のようになります。
{ "id": 854205, "name": "デフォルトブランチ保護", "target": "branch", "source_type": "Repository", "source": "XXXXXXXX/eslint-config-classmethod", "enforcement": "active", "conditions": { "ref_name": { "exclude": [], "include": [ "~DEFAULT_BRANCH" ] } }, "rules": [ { "type": "deletion" }, { "type": "non_fast_forward" }, { "type": "pull_request", "parameters": { "required_approving_review_count": 1, "dismiss_stale_reviews_on_push": true, "require_code_owner_review": false, "require_last_push_approval": true, "required_review_thread_resolution": true } } ], "bypass_actors": [] }
この JSON ファイルをそのままバックアップとすることができますし、他のリポジトリにインポートすることで、同じルールセットを適用することができます。
ルールセットのインポート
ルールセットのメニューで[New ruleset > Import a ruleset]をクリックします。すると、ファイル選択ダイアログが表示されるので、エクスポートした JSON ファイルを選択します。
すると、インポートしたルールセットが表示されます。必要に応じて設定を変更します。
[Create]をクリックしてルールセットを作成します。
インポートによりルールセットを作成することができました。
ルールセットの Revert は上手く動かなかった
ちなみに作成済みのルールセットの変更履歴から Revert を行うことも可能となったと冒頭のアップデート情報にありましたが、私の環境では上手く動作しませんでした。
ルールセット画面の下方の[Revert changes]をクリックします。
するといくつか変更をした上で保存したはずなのに、No changes have been made
と表示されてしまいます。
Revert 機能があるとルールセットの変更履歴を管理する上で非常に便利なので、今後のアップデートで改善されることを期待します。
おわりに
GitHub のリポジトリルールセットをエクスポートおよびインポートできるようになっていたので、試してみた内容をご紹介しました。
以上